#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main(){
cin.tie(nullptr);
ios_base::sync_with_stdio(false);
int N, A, B, C, ans=0;
cin >> N;
vector<vector<int>> E(N), D(N);
for (int i=0; i<N-1; i++){
cin >> A >> B;
A--; B--;
E[A].push_back(B);
E[B].push_back(A);
}
auto dfs=[&](auto self, int from, int p, int d)->void{
if (p == 0) C=from;
if (p != -1 && E[from].size() == 1) D[C].push_back(d);
for (auto to : E[from]){
if (to == p) continue;
self(self, to, from, d+1);
}
};
dfs(dfs, 0, -1, 0);
for (int i=0; i<N; i++){
if (!D[i].empty()){
int s=0;
sort(D[i].begin(), D[i].end());
for (auto x : D[i]) s=max(s+1, x);
ans = max(ans, s);
}
}
cout << ans << endl;
return 0;
}
767A - Snacktower | 1365A - Matrix Game |
714B - Filya and Homework | 31A - Worms Evolution |
1691A - Beat The Odds | 433B - Kuriyama Mirai's Stones |
892A - Greed | 32A - Reconnaissance |
1236D - Alice and the Doll | 1207B - Square Filling |
1676D - X-Sum | 1679A - AvtoBus |
1549A - Gregor and Cryptography | 918C - The Monster |
4B - Before an Exam | 545B - Equidistant String |
1244C - The Football Season | 1696B - NIT Destroys the Universe |
1674A - Number Transformation | 1244E - Minimizing Difference |
1688A - Cirno's Perfect Bitmasks Classroom | 219A - k-String |
952A - Quirky Quantifiers | 451B - Sort the Array |
1505H - L BREAK into program | 171E - MYSTERIOUS LANGUAGE |
630D - Hexagons | 1690D - Black and White Stripe |
1688D - The Enchanted Forest | 1674C - Infinite Replacement |